(a) Field of the Invention
The present invention relates to methods and apparatus for converting virtual addresses to real addresses.
A virtual address is defined as an address which is contained in a program instruction and which needs modifying in order to gain access to data represented by a word in a central memory, while a real address allows direct access. A central memory is defined as the memory containing the data to which the central unit of a computer has direct access, as opposed to auxiliary memories.
The invention relates more particularly to methods and apparatus for converting virtual addresses to real addresses for a real-time data processing system in which the programs are divided into numbered functional sets, each functional set being divided into segments defined by as many labels.
The division of a program into segments, or segmentation, is a method for limiting central memory congestion by loading the central memory at any one time with only that segment needed for executing the program at that time.
(b) Discussion of the Prior Art
Conventional conversion devices use a functional set number register, a table of segment labels located in the data processing system central memory and so-called "base" registers, each capable of storing a segment label, all these registers taken together being capable of storing the labels of segments required by a functional set.
Segmentation makes it necessary to consult the segment label table prior to each central memory access operation, since the virtual address (the only address known by the programmer), simply indicates the displacement (or relative address) within the segment. In order to obtain the absolute address, it is necessary to add this displacement to the base address (or start address) of the segment, which is given by the segment label table. This base address, comprising a given binary number, is conventionally associated with an access code and data indicating the size of the segment in order to constitute a segment label. This is the operating system of the data processing system controlling the segment label table, i.e. the locations of segments in the central memory.
In addition, the grouping of segments into functional sets comprises consulting a functional set number register prior to each segment label table access operation, since it is preferable to use functional set change instructions for updating the functional set number register rather than indicating this number in all instructions of the same functional set. This increases the effective addressing capacity of the data processing system.
In the case of known multiprogramming data processing systems using segmentation and the division of programs into functional sets, a supervisory program is called for each functional set change in order to update the base registers.
A disadvantage of the program-controlled updating method is its relatively long execute time. The disadvantage of this method thus increases with the number of functional set changes, which is especially true for the data processing systems used in electronic telephone exchanges.
Also in the case of known systems, the supervisory program updates all the central unit base registers at each change of functional set. This method needlessly increases the supervisory program execute time, since in telephone switching applications, processing of all the segments of the same functional set, before changing the latter, is very infrequent.